package com.temp.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Campaign implements Serializable {

    /**
     * 活动主键ID(主键)
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 创建用户ID(外键)
     */
    private Long userId;

    /**
     * 类别ID
     */
    private Long categoryId;

    /**
     * 活动标题
     */
    private String title;

    /**
     * 活动内容
     */
    private String context;

    /**
     * 活动简介
     */
    private String description;

    /**
     * 目标金额（精度2位）
     */
    private BigDecimal goalAmount;

    /**
     * 当前已筹金额
     */
    private BigDecimal currentAmount;

    /**
     * 活动开始时间（允许NULL，由应用层保证必填）
     */
    private LocalDateTime startTime;

    /**
     * 活动结束时间（允许NULL，由应用层保证必填）
     */
    private LocalDateTime endTime;

    /**
     * 持续时间
     */
    private int duration;

    /**
     * 状态（草稿/进行中/已结束/已取消）
     */
    private String status;

    /**
     * 活动封面图URL（用于列表展示）
     */
    private String coverImageUrl;

    /**
     * 其他的图片
     */
    private String anotherImgUrls;

    /**
     * 国家,城市
     */
    private String location;

    /**
     * 可见性
     */
    private int visibility;

    /**
     * 开放记录
     */
    private int openMarket;


    /**
     * 控制提现的进度
     */
    private Integer progressOfWith;

    /**
     * 控制机器人捐款进度
     */
    private Integer robotDonationProcess;

    /**
     * 进度百分比（虚拟列）
     */
    private Integer progress;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;
}
